/*
 * GuildFraktionInfo - list the reputation and the guild level of all members of a wow guild
 * Copyright (C) [2012 - 2013] [www.marantis.de]
 * 
 * This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public 
 * License as published by the Free Software Foundation; either version 3 of the License, or (at your option) any later 
 * version.
 * 
 * This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied 
 * warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
 * 
 * You should have received a copy of the GNU General Public License along with this program; if not, 
 * see <http://www.gnu.org/licenses/>.
 */
package de.marantis.app.wow.gfi.beans;

import java.io.File;
import java.net.URL;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.Properties;

public class ConfigBean {

    /*
     * should the app run as swing tool or as a console application?
     */
    private boolean consoleMode;
    
    /*
     * When test mode = true then just 10 guild members will be analyzed (not all)
     */
    private boolean testMode;
    
    /*
     * the path to the Log4J configuration properties
     */
    private File log4jConfigFile;
    
    /*
     * the path to the GFI configuration properties
     */
    private File gfiConfigFile;
    
    /*
     * the path to the json export file
     */
    private File jsonExportFile;
    
    /*
     * The properties of the GFI config file
     */
    private Properties gfiConfigProperties;
    
    /*
     * The wow armory url for the guild to analyze
     */
    private URL armoryUrl;
    
    /*
     * The count of all guild levels (defined by the guild master)
     */
    private int guildLevelCount;
    
    /*
     * The list of the names to all guild levels (defined by the guild master)
     */
    private ArrayList<String> guildLevelNames;

    /*
     * Guild level filter: minimum required guild reputation for a defined guild level<br>
     * <br>
     * for example: <br>
     * <br>
     * a guild level 'member' (4) needs minimum the guild reputation 'honoured' (6)
     */
    private HashMap<Integer, Integer> guildLevelFilter;
    
    /*
     * Guild reputation filter: a finished guild reputation should be a minimum guild level<br>
     * <br>
     * for example: <br>
     * <br>
     * a guild member with the guild reputation level 'honoured' (6)<br>
     * should has minimum the guild level 'member' (4).
     */
    private HashMap<Integer, Integer> guildReputationFilter;
    
    
    /*
     * *** GETTER / SETTER ********************************************************************************************
     */

    public boolean isConsoleMode() {
        return consoleMode;
    }

    public void setConsoleMode(boolean consoleMode) {
        this.consoleMode = consoleMode;
    }

    public boolean isTestMode() {
        return testMode;
    }

    public void setTestMode(boolean testMode) {
        this.testMode = testMode;
    }

    public File getLog4jConfigFile() {
        return log4jConfigFile;
    }

    public void setLog4jConfigFile(File log4jConfig) {
        this.log4jConfigFile = log4jConfig;
    }

    public File getGfiConfigFile() {
        return gfiConfigFile;
    }

    public void setGfiConfigFile(File gfiConfig) {
        this.gfiConfigFile = gfiConfig;
    }

    public File getJsonExportFile() {
        return jsonExportFile;
    }

    public void setJsonExportFile(File jsonExport) {
        this.jsonExportFile = jsonExport;
    }

    public Properties getGfiConfigProperties() {
        return gfiConfigProperties;
    }

    public void setGfiConfigProperties(Properties config) {
        this.gfiConfigProperties = config;
    }

    public URL getArmoryUrl() {
        return armoryUrl;
    }

    public void setArmoryUrl(URL armoryUrl) {
        this.armoryUrl = armoryUrl;
    }

    public int getGuildLevelCount() {
        return guildLevelCount;
    }

    public void setGuildLevelCount(int guildLevelCount) {
        this.guildLevelCount = guildLevelCount;
    }

    public ArrayList<String> getGuildLevelNames() {
        return guildLevelNames;
    }

    public void setGuildLevelNames(ArrayList<String> guildLevelNames) {
        this.guildLevelNames = guildLevelNames;
    }

    public HashMap<Integer, Integer> getGuildLevelFilter() {
        return guildLevelFilter;
    }

    public void setGuildLevelFilter(HashMap<Integer, Integer> guildLevelFilter) {
        this.guildLevelFilter = guildLevelFilter;
    }

    public HashMap<Integer, Integer> getGuildReputationFilter() {
        return guildReputationFilter;
    }

    public void setGuildReputationFilter(HashMap<Integer, Integer> guildReputationFilter) {
        this.guildReputationFilter = guildReputationFilter;
    }
}
